AWS Marketplace の製品コードから AMI に関する情報を取得する方法を教えてください

AWS Marketplace の製品コードから AMI に関する情報を取得する方法を教えてください

Clock Icon2024.11.03

困っていること

弊社は AWS Marketplace より購入した製品を利用して EC2 インスタンスを起動しています。
運用担当者の退職に伴い、どの AWS Marketplace 商品を購入したのか詳細情報が解りません。
対象の起動中の EC2 インスタンスより AMI 情報を確認したものの、「AMI 名」「AMI の場所」が解らず調査が難航してます。方法があれば教えてください。

どう対応すればいいの?

AWS Marketplace で購入した製品には固有の製品コードが割り当てられます。
バックアップ目的などで繰り返し取得した AMI においても固有の製品コードが割り当てられている状態となります。

https://docs.aws.amazon.com/ja_jp/marketplace/latest/userguide/ami-getting-started.html

AWS Marketplaceで製品を作成すると、固有の製品コードが割り当てられます。この製品コードは、製品の AMIs に関連付けられており、製品の使用を追跡するために使用されます。製品コードは、購入者がソフトウェアを使用している間に自動的に伝播します。例えば、顧客が をサブスクライブして起動しAMI、設定して、新しい を生成しますAMI。新しい には元の製品コードAMIがまだ含まれているため、正しい使用状況の追跡とアクセス許可はそのまま残ります。

そのため、こちらの製品コードから AWS CLI describe-images コマンドを利用して詳細情報を取得可能です。
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-images.html

なお、製品コードはインスタンスメタデータを使用して取得することも可能ですが、AMI のマネジメントコンソール画面より確認することが可能です。

0011

やってみた

調査対象 AMI の製品コードから、元の AMI ID を取得します。

※ 適宜修正してください

$ aws ec2 describe-images \
    --owners aws-marketplace \
    --filters "Name=product-code,Values=xxxxxxxxxxxxxxxxxxxx" \
    --query "sort_by(Images, &CreationDate)[-1].[ImageId]" 

AWS CLI コマンド実行例
$ aws ec2 describe-images \
>     --owners aws-marketplace \
ters "N>     --filters "Name=product-code,Values=7n1h7gy5flii44hze360hu5a8" \
>     --query "sort_by(Images, &CreationDate)[-1].[ImageId]"
[
    "ami-0ba23b942a6e80fa6"
]

AWS CLI コマンド実行結果より、ami-0ba23b942a6e80fa6 を利用して EC2 インスタンスを起動したと考えられます。
次に、当該 AMI ID について詳細な情報を取得します。

※ 適宜修正してください

$ aws ec2 describe-images --image-ids ami-xxxxxxxxxxxxxx
AWS CLI コマンド実行例
$ aws ec2 describe-images --image-ids ami-0ba23b942a6e80fa6
{
    "Images": [
        {
            "Architecture": "x86_64",
            "CreationDate": "2024-02-21T19:43:28.000Z",
            "ImageId": "ami-0ba23b942a6e80fa6",
            "ImageLocation": "aws-marketplace/RHEL-SAP-8.2.0_HVM-20240116-x86_64-20-Hourly2-GP3-810c9d2d-afed-4183-99cc-9280d1684740-ami-065d11bb51a489c69.4",
            "ImageType": "machine",
            "Public": false,
            "OwnerId": "679593333241",
            "PlatformDetails": "Red Hat Enterprise Linux",
            "UsageOperation": "RunInstances:0010",
            "ProductCodes": [
                {
                    "ProductCodeId": "7n1h7gy5flii44hze360hu5a8",
                    "ProductCodeType": "marketplace"
                }
            ],
            "State": "available",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/sda1",
                    "Ebs": {
                        "DeleteOnTermination": true,
                        "SnapshotId": "snap-0fcff39ad56865ced",
                        "VolumeSize": 10,
                        "VolumeType": "gp3",
                        "Encrypted": false
                    }
                }
            ],
            "Description": "Provided by Red Hat, Inc.",
            "EnaSupport": true,
            "Hypervisor": "xen",
            "ImageOwnerAlias": "aws-marketplace",
            "Name": "RHEL-SAP-8.2.0_HVM-20240116-x86_64-20-Hourly2-GP3-810c9d2d-afed-4183-99cc-9280d1684740-ami-065d11bb51a489c69.4",
            "RootDeviceName": "/dev/sda1",
            "RootDeviceType": "ebs",
            "SriovNetSupport": "simple",
            "VirtualizationType": "hvm",
            "DeprecationTime": "2026-02-21T19:43:28.000Z"
        }
    ]
}

詳細な情報を取得することができました。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.